This invention relates to interfaces in programmable logic devices. More particularly, this invention relates to interfaces in programmable logic devices that interface different input/output (I/O) standards.
A programmable logic device (“PLD”) is a general-purpose integrated circuit device that is programmable to perform any of a wide range of logic tasks. Rather than having to design and build separate logic circuits for performing different logic tasks, general-purpose PLDs can be programmed in various different ways to perform those various logic tasks. Many manufacturers of electronic circuitry and systems find PLDs to be an advantageous way to provide various components of what they need to produce.
There are numerous high-speed input/output (I/O) industry standards that are available for transferring data between two locations within a PLD. Such I/O standards include, for example, Synchronous Optical NETwork (SONET), 10 Gigabyte (10 G) Ethernet, InfiniBand, Packet Over Sonet—Physical Layer 4 (POS-PHY4), Rapid I/O, Utopia, Hyper-Transport, FlexBus, etc. These I/O standards are typically incompatible with one another, thus preventing the direct transfer of data from one I/O standard to another. For example, the 10G Ethernet I/O standard can send or receive a burst of data containing four words (where each word is sixteen bits) each clock cycle. The POS-PHY4 I/O standard, on the other hand, can send or receive a burst of data containing eight words each clock cycle. The use of an interface allows the transfer of data from one I/O standard to another.
An interface generally includes a receiver and a transmitter. In particular, an interface receiver typically includes a crossbar and a barrel shifter. A crossbar receives a burst of data from an I/O standard and reorders this data. A barrel shifter then shifts this data for transfer out to another I/O standard. Crossbars and barrel shifters are generally implemented using a large number of logic elements (e.g., in the thousands). As a result, an interface receiver occupies a large area and is costly to implement.
It would therefore be desirable to implement crossbars and barrel shifters in an interface more efficiently, thereby minimizing the area overhead and cost.